home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 17 / AMIGAplus Sonderheft 17 (1999)(ICP)(DE)[!].iso / Rexx / Process.pprx < prev    next >
Text File  |  1997-05-06  |  4KB  |  143 lines

  1. /* Personal Paint Amiga Rexx script - Copyright © 1995-1997 Cloanto Italia srl */
  2.  
  3. /* $VER: Process.pprx 2.1 */
  4.  
  5. /** ENG
  6.   This script applies an image processing filter to all image files
  7.   (pictures or brushes) in the selected directory. The original files
  8.   are overwritten.
  9. */
  10.  
  11. /** DEU
  12.   Dieses Skript automatisiert die Anwendung eines Bildverarbeitungsfilters
  13.   auf alle Grafikdateien (Bilder oder Brushes) im ausgewählten Verzeichnis.
  14.   Die ursprünglichen Dateien werden  dabei überschrieben.
  15. */
  16.  
  17. /** ITA
  18.   Questo script applica un filtro di elaborazione immagine a tutti i file
  19.   (immagini o pennelli) presenti nel cassetto selezionato. I file originali
  20.   vengono sovrascritti.
  21. */
  22.  
  23. IF ARG(1, EXISTS) THEN
  24.     PARSE ARG PPPORT
  25. ELSE
  26.     PPPORT = 'PPAINT'
  27.  
  28. IF ~SHOW('P', PPPORT) THEN DO
  29.     IF EXISTS('PPaint:PPaint') THEN DO
  30.         ADDRESS COMMAND 'Run >NIL: PPaint:PPaint'
  31.         DO 30 WHILE ~SHOW('P',PPPORT)
  32.              ADDRESS COMMAND 'Wait >NIL: 1 SEC'
  33.         END
  34.     END
  35.     ELSE DO
  36.         SAY "Personal Paint could not be loaded."
  37.         EXIT 10
  38.     END
  39. END
  40.  
  41. IF ~SHOW('P', PPPORT) THEN DO
  42.     SAY 'Personal Paint Rexx port could not be opened'
  43.     EXIT 10
  44. END
  45.  
  46. ADDRESS VALUE PPPORT
  47. OPTIONS RESULTS
  48. OPTIONS FAILAT 10000
  49.  
  50. Get 'LANG'
  51. IF RESULT = 1 THEN DO        /* Deutsch */
  52.     txt_req_selflt    = 'Filter auswählen'
  53.     txt_req_seldir    = 'Verzeichnis auswählen'
  54.     txt_err_oldclient = 'Für dieses Skript_ist eine neuere Version_von Personal Paint erforderlich'
  55. END
  56. ELSE IF RESULT = 2 THEN DO        /* Italiano */
  57.     txt_req_selflt    = 'Selezionare filtro'
  58.     txt_req_seldir    = 'Selezionare percorso'
  59.     txt_err_oldclient = 'Questa procedura richiede_una versione più recente_di Personal Paint'
  60. END
  61. ELSE DO        /* English */
  62.     txt_req_selflt    = 'Select a Filter'
  63.     txt_req_seldir    = 'Select a Directory'
  64.     txt_err_oldclient = 'This script requires a newer_version of Personal Paint'
  65. END
  66.  
  67. Version 'REXX'
  68. rxver = RESULT
  69. IF rxver < 7 THEN DO
  70.     RequestNotify 'PROMPT "'txt_err_oldclient'"'
  71.     EXIT 10
  72. END
  73.  
  74.  
  75. filtname = 'Randomize Oblique'
  76.  
  77.  
  78. LockGUI
  79. IF rxver < 5 THEN
  80.     FreeEnvironment 'QUERY'
  81. ELSE
  82.     RequestFilter '"'txt_req_selflt'" "'filtname'"'
  83. IF RC = 0 THEN DO
  84.     IF rxver >= 5 THEN
  85.         PARSE VALUE RESULT WITH '"' filtname '"' dithertype .
  86.  
  87.     RequestPath '"'txt_req_seldir'"'
  88.     IF RC = 0 THEN DO
  89.         tmpfname = 'T:pprx_temp.'PRAGMA('ID')
  90.         ADDRESS COMMAND 'List >'tmpfname' 'RESULT' NOHEAD PAT=~(#?.info) LFORMAT="*"%s%s*"" FILES'
  91.         IF OPEN('listfile', tmpfname, 'R') THEN DO
  92.             IF rxver < 5 THEN
  93.                 DeleteFrames 'ALL FORCE'
  94.             DO FOREVER
  95.                 curfname = READLN('listfile')
  96.                 IF EOF('listfile') THEN BREAK
  97.                 IF rxver < 5 THEN DO
  98.                     LoadImage curfname 'FORCE QUIET'
  99.                     IF RC = 0 THEN DO
  100.                         LoadBrush curfname 'FORCE QUIET'
  101.                         IF RC = 0 THEN DO
  102.                             GetBrushAttributes 'WIDTH'
  103.                             xmax = RESULT - 1
  104.                             GetBrushAttributes 'HEIGHT'
  105.                             ymax = RESULT - 1
  106.                             GetBrushAttributes 'HANDLEX'
  107.                             hanx = RESULT
  108.                             GetBrushAttributes 'HANDLEY'
  109.                             hany = RESULT
  110.                             Process '"'filtname'"' 0 0 xmax ymax
  111.                             IF RC = 0 THEN DO
  112.                                 DefineBrush 0 0 xmax ymax
  113.                                 IF RC = 0 THEN DO
  114.                                     SetBrushAttributes 'HANDLEX' hanx 'HANDLEY' hany
  115.                                     SaveBrush curfname 'FORCE'
  116.                                 END
  117.                             END
  118.                             ELSE IF RC = 5 THEN    /* user break */
  119.                                 LEAVE
  120.                         END
  121.                     END
  122.                 END
  123.                 ELSE DO
  124.                     LoadBrush curfname 'FORCE QUIET'
  125.                     IF RC = 0 THEN DO
  126.                         Process 'BRUSH "'filtname'" 'dithertype
  127.                         IF RC = 0 THEN
  128.                             SaveBrush curfname 'FORCE'
  129.                         ELSE IF RC = 5 THEN    /* user break */
  130.                             LEAVE
  131.                     END
  132.                 END
  133.             END
  134.             FreeBrush 'FORCE'
  135.             IF rxver < 5 THEN
  136.                 ClearImage
  137.             CALL CLOSE('listfile')
  138.         END
  139.         ADDRESS COMMAND 'Delete >NIL: 'tmpfname
  140.     END
  141. END
  142. UnlockGUI
  143.